﻿using Microsoft.Xna.Framework;

namespace Firefly.Framework.Collections.Spatial
{
    public interface IQuadTreeNode
    {
        IQuadTreeNode Parent { get; set; }
        IQuadTreeNode LeftUpNode { get; set; }
        IQuadTreeNode RightUpNode { get; set; }
        IQuadTreeNode LeftDownNode { get; set; }
        IQuadTreeNode RightDownNode { get; set; }
        IQuadTreeNode UpNode { get; set; }
        IQuadTreeNode DownNode { get; set; }
        IQuadTreeNode LeftNode { get; set; }
        IQuadTreeNode RightNode { get; set; }
        int NodeDepth { get; }
        int NodeLevel { get; }
        int NodeScale { get; }
        NodeStatus Status { get; set; }
        BoundingBox BoundingBox { get; }
        bool InView { get; set;  }
        float DistanceFromCamera { get; set; }
        int XPosition { get; }
        int YPosition { get; }
        Vector3 Offset { get; set; }

        void Reset();
    }
}
